<script>
    /* 
一元操作符
        +  -
     一元加操作   +1  数字本身
        布尔类型
            +true  1
            +false 0
            +null  0  
            +undefined NaN
            +数字字符串 数字
            +字符串  NaN
            对象
        作用：意义不大
    一元减操作
         加个-   
递增和递减操作符
    ++a  先赋值后运算 
    a--  先运算后赋值
             

   1. 优先级：
    .  []（最高）   一元运算符  * /   逻辑   == ===   =（最低），
    属性访问 > 一元操作符 > 乘除 > 加减 > 比较 > 相等 > 与运算 > 或运算 > 三目运算 ＞ 赋值运算
    算数运算符(++ -- + - * /)  、赋值运算符(=  +=  -= *=  /=  %=)、比较运算符(> >= < < = == === != !===)、逻辑运算符(&& || !)、三目运算符(? :)
         

    2.  // 结合性 左结合 右结合(一元操作符(+ - ++ -- ! ~按位非 &按位与 |按位或  typeof操作符 void delete)、赋值操作符、三元操作符)

    3.执行顺序  表达式从左向右执行
    */
   console.log(Boolean([]));
    var i = 3;
    console.log(++i == 3);//false

    var a = 1;
    var b = a++ + a;//1+2  
    console.log(a, b);//2 3

    b= a++ + ++a;//左向右执行
    
    console.log(!a++);//false  先a++  再！

    // a?b:(c?d:(e?f:g)) 先算里面的
    let x = a ? b : c ? d : e ? f : g;

    let c = b = a;
    console.log(b,c);
    
    
</script>